Databases are used to store information for an innumerable number of applications, including various commercial, industrial, technical, scientific and educational applications. Databases are generally organized into tables and fields, and may be searched via database queries. A particular database may consist of many tables, and the tables in a database are generally related to each other.
Building easy to use and dynamic database user interfaces is one of the major challenges for any web application development project. The back-end implementation of business logic that supports any user interface needs to be very generic in order to efficiently manage large types of data, attributes, information and variations of the queries. In addition, the interface needs to be extensible and scalable as the application evolves over time. For any medium to large-scale web application, this is a daunting development task as several constraints come into play in designing such an implementation that meets the above requirements.
There are inherent problems with traditional approaches for implementing database query web interfaces. Traditionally, most web-based user interface forms are built one-by-one using a web page design tool, such as Microsoft FrontPage, Macromedia ColdFusion MX, or by manually writing Hypertext Markup Language (“HTML”) code. This process is very time consuming and impractical for a rich user interface.
Further, a major issue in using traditional approaches for graphic user interface (“GUI”) building and query writing is maintenance. As the application may evolve very quickly over time, the application needs to be constantly updated for new requirements. As the number of records in the database grows and the number of attributes available for querying grows, it becomes necessary to allow the user to perform complex trend analysis and finely control the set of attributes on which the queries operate. Traditional approaches do not provide this level of granularity without tremendous maintenance costs.